package day02;

import sun.security.krb5.SCDynamicStoreConfig;

import java.util.Scanner;

//数据类型的演示
public class DatsTypeDemo {
    public static void main(String[] args) {
//        7.byte,short,char类型转换
        //1)整数直接量可以直接赋值给byte,short,char,但不能超出范围
        //2)byte,short,char型数据参与运算时,系统一律将其转换为int再运算
        byte b1 = 5;
        byte b2 = 6;
        byte b3 = (byte)(b1+b2);

        System.out.println(2+2);//4
        System.out.println('2'+'2');//100,'2'的码50,加上'2'的码50
        System.out.println(2+'2');//52,2加上'2'的码50
        int a = '我',b = '你';
        System.out.println(a);
        System.out.println(b);
        System.out.println(a+b);

        System.out.println('2');//2   没有参与运算 所以不是码50









        /*
//  6.类型间的转换
        int a = 5;
        long b = a;//自动/隐式类型转换
        int c = (int)b;//强制类型转换

        long d = 5;//自动类型转换
        double e = 5;//自动类型转换
        System.out.println(e);//5.0

        long f = 100000000000L;
        int g = (int)f;
        System.out.println(g);//1215752192,强转有可能发生溢出

        double h = 25.678;
        int i = (int)h;
        System.out.println(i);//25,强转有可能丢失精度

         */











        /*
//  5.char:字符型,2个字符
        char c1 = '女';//字符女
        char c2 = 'f';//字符f
        char c3 = '6';//字符6
        char c4 = ' ';//字符空格
        //char c5 = 女;  //编译错误,字符直接量必须放在单引号中
        char c6 = 35641;
        System.out.println(c6);
        char c7 = '\\';//  反斜杠(\) 转义符
        System.out.println(c7);
        char c8 = '\n';
        System.out.println(c8);
        char c9 = '6';
        System.out.println(c9);
         */




        /*
//  4.boolean:布尔型,1个字节
        boolean a = true;//true为布尔型直接量
        boolean b = false;//false为布尔型直接量
        //boolean c = 25.6;//编译错误,布尔型只能存储true或false
         */









        /*
//        3.double:浮点型,8个字节,范围很大很大很大
        double a = 25.678;//25.678为小数直接量,默认为double类型
        float b = 25.678F;//25.678F为float型直接量

        double c = 3.0,d = 2.9;
        System.out.println(c-d);//0.10000000000000009,发生舍入误差
         */










        /*
//  2.long 长整数型
        long e = 1000000000*2*10L;
        System.out.println(e);//输出200亿
        long f = 1000000000*3*10L;//先算10亿乘以3,int类型溢出了,再乘以10
        System.out.println(f);//输出的不是300亿
        long g = 1000000000L*3*10;
        System.out.println(g);//300亿
        */







    }
}
